package com.qf.commons.event.core.standrad;


import com.qf.commons.event.entity.QphoneMessage;

/**
 * 发布端的拦截器
 * description:
 * author: Ken
 * 公众号：Java架构栈
 */
public interface ProduceInterceptor {

    /**
     * 判断当前的消息是否为需要拦截的消息
     * @param qphoneMessage
     * @return
     */
    default boolean isSupport(QphoneMessage qphoneMessage){
        return true;
    }

    /**
     * 消息发送的前置处理
     * @return 返回的消息对象为空，则终止发送
     */
    default QphoneMessage sendPreProcessor(QphoneMessage qphoneMessage){
        return qphoneMessage;
    }

    /**
     * 消息发送结果的回调处理
     */
    default void sendMsgCallback(QphoneMessage qphoneMessage, boolean ack, Exception e){
    }
}
